Method and apparatus for presenting information in a display system using transparent windows

ABSTRACT

A central processing unit (CPU) is provided and is coupled to a display for displaying graphic and other data in multiple overlapping windows. The CPU is further coupled to one or more input devices which permits a user to selectively position a cursor and input and manipulate data within each of the windows on the display. The windows include defined areas having window features such as text, icons and buttons corresponding to functions to be executed by the CPU. Multiple applications may be executed concurrently by the CPU such that each application is associated with one or more windows. Each display element (“pixel”) comprising the display is represented by multiple bits in a computer frame buffer memory coupled to the CPU. An alpha value (α) is associated with the intensity of each pixel of the display, such that multiple images may be blended in accordance with a predefined formula utilizing the alpha values. By setting the alpha values appropriately, transparency may be accomplished such that data associated with underlying windows may be rendered visible to the user. Effectively, the present invention merges multiple images through alpha “blending” such that several images appear transparently on top of one another. The present invention, through the selective use of alpha blending, permits underlying windows to display data visible to the user through windows which are overlaid above an underlying window.

This is a continuation of application Ser. No. 09/398,183, filed Sep.17, 1999, which issued on May 7, 2002, as U.S. Pat. No. 6,384,840; whichis a continuation of application Ser. No. 08/719,317, filed Sep. 25,1996, which issued on Dec. 7, 1999, as U.S. Pat. No. 5,999,191; which isa continuation of application Ser. No. 08/291,079, filed Aug. 16, 1994,which issued on Jul. 22, 1997, as U.S. Pat. No. 5,651,107; which is acontinuation of application Ser. No. 07/991,857 filed Dec. 15, 1992,which was abandoned.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to apparatus and methods for displayingand manipulating graphic information, and more particularly, the presentinvention relates to a computer controlled display system for displayingoverlapping windows of data on a display.

2. Art Background

It is common for computer systems incorporating so-called “objectoriented” display systems to utilize multiple “windows” on a display inwhich combinations of text and graphics are disposed to conveyinformation to a user. The windows may take the form of a variety ofobjects such as a file folder, loose leaf binder, or simple rectangle,and the windows may overlap one another with the “top” window fullyvisible constituting the current work file.

It is generally believed that one origin of the object oriented displaysystems is a system known as “Smalltalk”. The Smalltalk approach is toreplace many previously commonly coded programming commands withtwo-dimensional, or three-dimensional, graphics and animation on acomputer display. It has been found that most people readily think interms of images, and a person can absorb and manipulate informationpresented in a visual context faster than if represented by text. Theparticular type of graphic interface by which the user interacts withthe machine may vary for any given application. For example, many of theobject oriented display systems utilize various icons which symbolicallyindicate the type of operation the computer system will execute if theicon function is chosen. The icons are displayed in conjunction with thewindows. In a window based display system, the user may deleteinformation from the window, move data from one window to another, andgenerally operate on the window as if an actual file or the object isbeing manipulated. A variety of object oriented systems exist today, andare displayed on computers manufactured by the assignee, SunMicrosystems, Inc., as well as other manufacturers. The ability tooperate on images which relate the user to actual objects on, forexample, a desktop, results in a stronger man-machine interface. See,for example, D. Robson, “Object-Oriented Software Systems”, BYTE, August1981, p.74, Vol. 6, No. 8; L. Tesler, “The Smalltalk Environment”, BYTE,August 1981, p.90, Vol. 6, No. 8; and Smith, et al., “Star UserInterface; An Overview”, National Computer Conference, 1982.

Modern object oriented window based display systems are made possible,in part, through the use of bit-mapped frame buffer display memories. Ina bit-map display system, a display element (referred to as a “pixel”)on the display screen is represented by one or more bits in a framebuffer memory. In its simplest form, a block of memory may be allocatedin a data processing storage system with each memory bit (a 0 or 1)mapped onto a corresponding pixel on the display. Thus, an entiredisplay screen full of data, in the form of images and/or text, isrepresented as either a 1 or a 0 in the frame buffer memory. In systemswith multiple bits, typically at least eight, it is possible to vary theintensity and color of the pixels on the display.

Over the past ten years, a variety of systems have been developed togenerate window based graphic user interface (GUI) displays. Manysystems permit multiple overlapping windows to be displayed, whereineach of the windows represents a different application software programbeing executed by a processor coupled to the display system. In somesystems, the application programs may be executing simultaneously,although the user operates only on the application program representedby the top window. In addition, in many cases only the top window isfully visible to the user with the windows underneath being fully orpartially obscured. Thus, although the lower obscured windows mayrepresent active application programs, the user is unable to fullyobserve the execution of the program since the top window obscures thosewindows which it overlaps (See, for example, U.S. Pat. No. 4,555,775,Issued November 1985 for a system which utilizes concurrent execution ofmultiple windows).

As will be described, the present invention uses a graphic displaytechnique known as “transparency” to increase the amount of informationpresented in a window based system. Using traditional overlapping windowconcepts, the present invention utilizes a transparency mechanism topresent information, such that the user can “see through” certainwindows to view underlying data and processes that would normally beobscured.

SUMMARY OF THE INVENTION

An apparatus and method is disclosed which has application for use incomputer display systems, and in particular, display systems havingobject oriented graphic user interfaces with overlapping windows. Acentral processing unit (CPU) is provided and is coupled to a displayfor displaying graphic and other data in multiple overlapping windows.The CPU is further coupled to one or more input devices which permits auser to selectively position a cursor and input and manipulate datawithin each of the windows on the display. The windows include definedareas having window features such as text, icons and buttonscorresponding to functions to be executed by the CPU. Multipleapplications may be executed concurrently by the CPU such that eachapplication is associated with one or more windows. Each display element(“pixel”) comprising the display is represented by multiple bits in acomputer frame buffer memory coupled to the CPU. An alpha value (α) isassociated with the intensity of each pixel of the display, such thatmultiple images may be blended in accordance with a predefined formulautilizing the α values. By setting the α values appropriately,transparency may be accomplished such that data associated withunderlying windows may be rendered visible to the user. Effectively, thepresent invention merges multiple images through a “blending” such thatseveral images appear transparently on top of one another. The presentinvention, through the selective use of a blending, permits underlyingwindows to display data visible to the user through windows which areoverlaid above an underlying window.

Accordingly, rather than all windows obscuring other underlying windows,each window (or “object”) of the display system of the present inventionhas an α value associated with it which may be selectively set. In thisway, windows do not need to be clipped with respect to one another, asrequired in the prior art. The windows are “blended” using the α valuesto achieve a desired level of transparency. In one embodiment, a slideris displayed within each window which permits the α value to be set by auser through the use of a cursor control device. The α value may be setbetween the range of 0 and 1, where a setting of 1 results in the windowbeing opaque, and a 0 setting resulting in the window being fullytransparent. In addition, a window selection method is disclosed topermit a user to render a window “active” and operate on its contentswithout disturbing the current window order on the display.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a computer incorporating the teachings of the presentinvention.

FIG. 2 shows one arrangement of program storage for the systemillustrated in FIG. 1.

FIG. 3 illustrates a prior art window based system requiring windowclipping for overlapping windows.

FIGS. 4a and 4 b illustrate a prior art window based system in whichworking text is obscured by a popup menu.

FIG. 5 conceptually illustrates the present invention's use ofoverlapping transparent windows.

FIG. 6 illustrates an application of the present invention to the priorart system illustrated in FIGS. 4a and 4 b.

FIG. 7 illustrates an application of the present invention whereincertain data disposed in windows under the active top window are visibleto the user through the selective use of transparency.

FIG. 8 illustrates an application of the present invention in which auser may select the transparency of each window.

FIG. 9 illustrates an application of the present invention wherein awindow is selected, converted to a “top” window and rendered active.

FIG. 10 illustrates an application of the present invention where anunderlying window is rendered active but operated upon through anoverlying window.

NOTATION AND NOMENCLATURE

The detailed descriptions which follow are presented largely in terms ofdisplay images, algorithms, and symbolic representations of operationsof data bits within a computer memory. These algorithmic descriptionsand representations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art.

An algorithm is here, and generally, conceived to be a self consistentsequence of steps leading to a desired result. These steps are thoserequiring physical manipulations of physical quantities. Usually, thoughnot necessarily, these quantities take the form of electrical ormagnetic signals capable of being stored, transferred, combined,compared, and otherwise manipulated. It proves convenient at times,principally for reasons of common usage, to refer to these signals asbits, values, elements, symbols, characters, images, terms, numbers, orthe like. It should be borne in mind, however, that all of these andsimilar terms are to be associated with the appropriate physicalquantities and are merely convenient labels applied to these quantities.

In the present case, the operations are machine operations performed inconjunction with a human operator. Useful machines for performing theoperations of the present invention include general purpose digitalcomputers or other similar devices. In all cases, there should be bornein mind the distinction between the method operations of operating acomputer and the method of computation itself. The present inventionrelates to method steps for operating a computer and processingelectrical or other physical signals to generate other desired physicalsignals.

The present invention also relates to apparatus for performing theseoperations. This apparatus may be specially constructed for the requiredpurposes or it may comprise a general purpose computer selectivelyactivated or reconfigured by a computer program stored in the computer.The algorithms presented herein are not inherently related to anyparticular computer or other apparatus. In particular, various generalpurpose machines may be used with programs in accordance with theteachings herein, or it may prove more convenient to construct morespecialized apparatus to perform the required method steps. The requiredstructure for a variety of these machines will appear from thedescription given below. Machines which may perform the functions of thepresent invention include those manufactured by the Assignee, SunMicrosystems, Inc., as well as other manufacturers of computer systems.

DETAILED DESCRIPTION PRESENTLY PREFERRED AND ALTERNATE EMBODIMENTS

The present invention discloses apparatus and methods for displayinggraphic information in a window based system on a computer display. Inthe following description, numerous specific details are set forth suchas computer system configurations, window elements, icons, etc. in orderto provide a thorough understanding of the present invention. However,it will be apparent to one skilled in the art that the present inventionmay be practiced without these specific details. In other instances,well known circuits and structures are not described in detail in ordernot to obscure the present invention unnecessarily.

FIG. 1 illustrates a computer based system for generating a window basedgraphic user interface in accordance with the teachings of the presentinvention. Shown is a computer 10 which comprises three majorcomponents. The first of these is an input/output (I/O) circuit 12 whichis used to communicate information in appropriately structured form toand from other portions of the computer 10. In addition, computer 10includes a central processing unit (CPU) 14 coupled to the I/O circuit12 and a memory 16. These elements are those typically found in mostgeneral purpose computers and, in fact, computer 10 is intended to berepresentative of a broad category of data processing devices. Alsoshown in FIG. 1 is a keyboard 18 to input data and commands intocomputer 10, as is well known. A magnetic disk 20 is shown coupled toI/O circuit 12 to provide the additional storage capability for thecomputer 10. It will be appreciated that additional devices may becoupled to computer 10 for storing data such as magnetic tape drives,bubble memory devices, as well as networks which are in turn coupled toother data processing systems. As is well known, disk 20 may store othercomputer programs, characters, routines, etc., which may be accessed andexecuted by CPU 14. A raster display monitor 24 is shown coupled to theI/O circuit 12 and is used to display images generated by CPU 14 inaccordance with the present invention. Any well known variety of cathoderay tube (CRT), liquid crystal, or other displays may be utilized asdisplay 24. A cursor control device 28 is also shown coupled to computer10 through I/O circuit 12. Cursor control device 28 includes switches30, 32 and 34 for signaling CPU 14 in accordance with the teachings ofthe present invention. Cursor control device 28 (commonly known as a“mouse”) permits a user to select various command modes, modify graphicdata, and input other data utilizing switches 30, 32 and 34. Moreparticularly, cursor control device 28 permits a user to selectivelyposition a cursor 36 at any desired location on display 24 by movementof the cursor control device 28 over a surface 40. In the presentlypreferred embodiment, cursor control 28 utilizes a well known opticalmethod for signaling CPU 14 of positional changes of cursor 36 bymovement of cursor control over a grid disposed on surface 40. However,it will be appreciated that a variety of well known cursor controldevices may be utilized by the present invention, including othercontrol devices such as mechanical mice, track balls, joy sticks, etc.

FIG. 2 shows one arrangement of major programs contained within thememory 16 illustrated in FIG. 1. In particular, there is shown a framebuffer 50, which comprises a bit map of display 24. The frame buffer 50represents the video memory for the display 24, wherein, each storagelocation comprising a plurality of bits in the frame buffer 50corresponds to a pixel on the display 24. Thus, the frame buffercomprises a two dimensional array of points having known coordinatescorresponding to the pixels on the raster display. In its simplest form,frame buffer 50 comprises a contiguous block of memory which isallocated such that each memory location is mapped onto thecorresponding pixel on the rastor display 24. Memory 16 also includes avariety of other programs 54 for execution by the CPU 14. For example, avariety of control, display, and calculating programs implementing theoperations and routines described in this Specification may be stored inmemory 16, as well as monitor control programs and disk operatingsystems. Moreover, memory 16 further includes space for other programsand spare memory 56 which may be used for a variety of other well knownfunctions and operations in data processing systems.

Referring now to FIG. 3, a conceptual illustration of a prior art windowbased display system is shown. As illustrated, a top active window 100overlays a window 102, which in turn overlays a window 103. In certaincomputer systems, the only active window being updated by the CPU 14 ofFIG. 1 would be window 100. Other systems concurrently execute multipleprograms resulting in constant updates to data disposed within window100, window 102, and window 103. However, in prior art window basedsystems, the windows have a spatial hierarchy such that the window ontop (window 100) obscures all, or portions of, the windows below them(window 102 and window 103). As such, prior art display systems mustincorporate the use of window clipping techniques to appropriatelyobscure, and thereby clip, the windows such that nonvisible data is notdisplayed since it is obscured by overlapping windows. A variety ofmethods have been devised over the years to achieve window clipping (Seefor example, U.S Pat. No. 4,622,545, Issued Nov. 11, 1986).

In traditional window based display systems, a user operating on datadisposed in window 100 would have to select a window to operate upon. Inmany current generation window display systems, the user places thecursor 36 in the area comprising window 103, and momentarily depresses(“clicks”) switch 34 on mouse 28, to bring that window to the top andoperate on data within window 103. In prior art based window systems,the user is unable to view data obscured by overlapping windows, andthereby monitor the progress or operate on programs represented by theunderlying windows while actively operating on data in the top window100. For example, as shown in FIG. 3, areas of windows 102 and 103 areobscured, rendering data in these areas unusable to the user.

Referring now to FIGS. 4a and 4 b, an example of the problem of obscuredwindows in a prior art system is illustrated. FIG. 4a illustrates aportion of a prior art word processing system in which the user desiresto operate upon the word “text”. The user highlights the word “text”using a cursor control device, such as mouse 28 of FIG. 1. In certainword processing systems, the selection of a word such as “text” of FIG.4a results in a pop-up menu 110 being displayed. The pop-up menu 110identifies the operations on sub-commands available to a user. Asillustrated in FIG. 4b, pop-up menu 110 obscures the word “text” beingoperated upon. In the example illustrated, the pop-up menu 110constitutes a (albeit a small) window which obscures a portion of thetext disposed in the underlying word processing window 109.

For purposes of this patent and invention, a “window” may be atraditional rectangular region on a display in which data is displayed,as well as smaller sub-regions, such as pop-up, pull-down or othermenus, icons, symbols or other display elements, and objects, generally.In the case of objects such as icons, the “data” displayed in the objectmay comprise only the pixels defining the icon. In objects such asrectangular windows, menus or sub-menus, the data displayed in suchobjects may include alpha numeric and/or graphic data. Accordingly, itwill be appreciated that the apparatus and method of the presentinvention has application to any object displayed on the display 24,regardless of the shape, size or function of the object in anyparticular computer display system.

Referring now to FIG. 5 the present invention is conceptuallyillustrated with reference to a display 150 having a top window 155 anda window disposed “under” window 155 identified by the numeral 158. Aspreviously discussed, each pixel of the display 150 is represented bymultiple bits in the frame buffer 50. A common technique for blendingimages is referred to as “α blending”, in which two images may beblended on a pixel by pixel basis according to the formula:

α^(*) X+(1−α)^(*) Y

where α is a number that ranges from 0 to 1. When α is a 1, the pixelwill contain only the X input value, when α is a 0, the pixel willcontain only Y image input. When α is disposed between 1 and 0, it willcontain both X and Y image information. For example, if α is 0.1, thenthe image on the screen will appear to be the Y image with the faintimage of the X image. The visual look and feel is that the X imageappears as though it is transparent, and that one can see through X andalso see the Y image.

Referring once again to FIG. 5, in a two window display system, wherewindow 155 represents the A window, window 158 represents a B window,and where C represents the entire display area 150 of the displayscreen:

for all pixels where

A∩B{C←B(1−α)+Aα}

where α=the transparency of A

Accordingly, multiple images can be merged, and appear transparently ontop of one another. In addition, it will be appreciated by one skilledin the art that the exact nature of the α blend operation will depend onthe visual effect desired, as well as the number of bits per pixel inthe intensity domain available (See also, Foley, VanDam et al. “ComputerGraphics Principles and Practice”, 2nd Edition (Addison Wesley 1990) foradditional information on transparency techniques).

In addition, the images within each window 155 and 158 need not have thesame α value for every pixel. In fact, the center of a graphic objectWithin, for example window 155, may have an α value of 1 (i.e., it fullyobscures the object it is blended with), while the edges may have an αvalue less than 1. The effect is that the edges of the graphic objectwithin window 155 are blurred with what is “behind” them, and thusappear smoother.

Using the teachings of the present invention, it is possible to definedifferent α values on an object by object basis. For example, within awindow objects can be identified, and their transparency can be defined,using a pixel based mask α table. In the example below, four pixels areassociated with each source (source 1 and source 2), wherein each pixelhas an α value which can be independently set. The pixel mask includes αvalues, m1,m2,m3, and m4. The results d1,d2,d3, and d4 represent thepixel mixing of source1 and source2, on a pixel by pixel basis, asdescribed below.

EXAMPLE

source 1 source 2 mask result |x1 x2| |y1 y2| |m1 m2| |d1 d2| |x3 x4||y3 y4| |m3 m4| |d3 d4| source 1 has 4 pixels: x1, x2, x3 and x4 source2 has 4 pixels: y1, y2, y3 and y4

a two-dimensional array mask also defines the weighting for each pixelwhere

d1 = x1*m1 + y1* (1-m1) d2 = x2*m2 + y2* (1-m2) d3 = x3*m3 + y3* (1-m3)d4 = x4*m4 + y4* (1-m4)

It will be appreciated that the above example for pixel mixing uses thecase of four pixels for simplicity of description. The presentinvention's method may be used with N pixels for each source, whereineach source is provided with an α mask table having the same pixelresolution as the source. In the case of N sources, there will be acorresponding N masks.

Furthermore, since each pixel from a source has associated with it an αvalue in the mask, it is possible to group pixels representing an objectand selectively vary the object's degree of transparency. An example ofthe grouping of pixels to represent an object is illustrated withrespect to the file folder 225, and the airplane 220, in FIG. 7,described below.

Using the teachings of the present invention in a window system runningon a multiple bit per pixel display, and where a multitude ofintensities are available per pixel, each window has an α valueassociated with it. In this way, windows need not be clipped withrespect to one another, but rather, they are simply blended using atechnique as noted above with respect to FIG. 5. Of course, the windowsmay still need to be clipped with respect to the edge of the displayscreen. In accordance with the present invention, if a traditionalwindow system is desired, wherein the top window obscures windows whichit overlays, the α value of a window is set to 1 whenever a window isvisible, and a 0 where it is obscured. To implement windows that arefully or partially transparent, the user, or alternatively an automaticroutine within the program, sets the α value as appropriate for thedesired level of transparency. It will be noted that the α value mayrepresent any arbitrary function, and the value may be scaled to anyinteger (in the present example 0 to 1).

Referring now to FIG. 6, a simple example of the present invention's useof transparency and overlapping windows is illustrated. In FIG. 6, awindow 120 containing word processing text is illustrated. As in theexample illustrated in FIGS. 4a and 4 b, the word “text” is selected bya user using a cursor control or other input device. A popup menu 125 isgenerated and displayed which contains a variety of word processingoptions or sub-commands the user may use to operate on the selectedword. However, in accordance with the teachings of the presentinvention, the α value for the popup window 125, is set such that window125 is partially transparent, thereby permitting the user to see boththe pop-up window 125 as well as the underlying words within the wordprocessing document which would otherwise be obscured. By allowing themenu 125 to have an α value less than 1, for example 0.3, the menu 125will remain readable to the user, while the information “behind” thepopup menu 125 is still visible.

Referring now to FIG. 7, another example of the present invention isillustrated. A display 200 includes three windows, namely, a top window205, an intermediate window 210 and a bottom window 215 all overlappingas shown in the figure. As can be seen, window 215 includes a graphicrepresentation of an airplane 220 and an icon 225 in the shape of a filefolder. The α value for the pixels comprising the graphic representationof the airplane 220 has been set to a value of 1. Therefore, thatportion of window 215 comprising the graphic representation of theairplane 220 implements a traditional window system while pixels inperipheral areas of window 215 have been set to a value less than 1. Asillustrated, the icon 230 identified as “HD” represents an icon which isnot obscured by any window and has also been given an α value set equalto 1. However, the icon 225 is “behind” and obscured by window 215, butthe icon 225 is still visible to the user through window 215 since thepixels in the periphery of window 215 have α values less than 1. Inother words, to achieve transparency, the α value for window 215 overthat portion of the display obscuring icon 225 has been set to α valueless than 1 (for example 0.3). Thus, the Icon 225 is visible since thatportion of window 215 has been rendered transparent through theappropriate setting of the α value.

Referring now to window 205 of FIG. 7, this window conceptuallyillustrates a window in which word processing application is beingexecuted. As shown, the text of the window is clearly visible and beingoperated upon by the user. Since window 205 is on “top” of windows 210and 215, window 205 is designated as the “active” window in thisexample. As illustrated, window 210 is disposed immediately “below”active window 205. In FIG. 7, window 210 represents an electronic mailprogram which lists current mail messages being stored and identifiesnew mail messages received. In prior art systems, the mail listcomprising the list of mail messages would be obscured by window 205. Inorder for a user to view the mail list in window 210, the user wouldhave to render the window 210 the “active” window and bring it to the“top” such that it overlaid window 205. However, by appropriatelysetting the α value for the pixels comprising window 205, the mail listdisplayed in window 210 is visible as a “ghost” image through the window205. As such, a user may operate upon the data displayed in the wordprocessing window 205 while viewing the mail list displayed in window210. If an incoming message is of interest to the user, the user mayview, and thereby identify, the incoming message in the mail list ofwindow 210 without the necessity of dismissing window 205 or bringingwindow 210 to the “top” of the desktop.

Accordingly, it will be appreciated by one skilled in the art thatthrough the selective setting of α values for pixels comprising windowson a display that data in desired windows may be rendered visible, evenif obscured by overlaying windows. The setting of the α value may beunder program or user control depending on how the invention isutilized, as will be described more fully below.

Referring now to FIG. 8, there is shown a display 250 having windows 255and 260 displayed therein. As shown, window 260 overlays window 255 inFIG. 8. Window 260 includes a slider 262 which permits the setting ofthe α value for window 260 between 0 and 1. In operation, a slider bar264 is moved selectively by a user using a cursor control device, suchas cursor control device 28 of FIG. 1. Similarly, window 255 includes aslider control 270 with a slider bar 272. In the present example, window260 comprises a window displaying the names of files accessible to aword processing document such as “Client Names”, “November 1992 time”,and the like. Window 255 is a clock program to provide the current timeto a user through the display of an analog clock face. It will beappreciated that in prior art window based systems, window 260 wouldobscure a portion of a clock face 275 displayed within window 255. Thus,it is very inconvenient if the user desires to read the current timefrom clock face 275, since window 255 would be partially obscured bywindow 260. Only by dismissing window 260, or rearranging the positionof the windows on the display 250, could the user read the time.

Utilizing the teachings of the present invention, the prior art problemof obscured windows is eliminated. In the example illustrated in FIG. 8,the α value for window 260 is set to a value of less than 1(approximately 0.8) by the user positioning the slide bar 264 using, forexample, the mouse 28. It is contemplated that the user may set theslide bar 264 by placing a cursor 265 in FIG. 8 over a portion of theslide bar 264, depressing a switch, such as switch 34 on the mouse 28(See FIG. 1), move the slide bar to an appropriate position on theslider 262, and release switch 34. As shown in FIG. 8, since the α valuefor window 260 has been set less than 1, window 260 is renderedpartially transparent, thereby allowing a user to view the entire clockface 275 displayed in window 255. As shown, slide bar 272 has been setsuch that the α value for window 255 is equal to 1. Accordingly, window255 comprises a traditional window which is not transparent.

Assume for sake of example that an alarm associated with clock 275sounds which the user desires to shut off. As shown in FIG. 8, window255 includes a shut off alarm box 277 which is visible to the userthrough window 260. In one embodiment of the present invention, toobtain access to the shut off alarm box 277, it is necessary for theuser to render window 255 the top “active” window. Using a common windowselection technique, the cursor 265 is placed within the region ofwindow 255 using mouse 28, and the user signals the CPU 14 of the windowselection. In many window based systems, the user signals CPU 14 byclicking a switch, such as switch 34, on mouse 28, and the CPU 14 thenre-renders windows 255 and 260 in display 250, such that window 255 nowoverlays window 260 as shown in FIG. 9. The user then has full access towindow 255, and can place the cursor 265 over the shutoff alarm box 277and “click” to terminate the alarm.

Although it is traditional to bring all active windows to the top in awindow based system prior to operating upon them, utilizing theteachings of the present invention, it is not necessary.

Referring now to FIG. 10, windows 255 and 260 are once again illustratedas being displayed in display 250. However, it will be noted that activewindow selection buttons 280, 281, 282 and 283 have been added to thefour corners of window 255. Similarly, buttons 285, 286, 287 and 288have been added to the four corners of window 260, as shown. By placingcursor 265 over one of the buttons 280 to 283 in window 255, or one ofbuttons 285 to 288 for window 260, and momentarily depressing switch 34on mouse 28 as previously described, either window 255 or window 260 maybe selected without altering the relative position of the windows on thedisplay 250. For example, if a user desires access to shut off alarm box277 but does not wish to bring window 255 to the top, the user simplyplaces cursor 265 over one of buttons 280 through 283, and signals theCPU 14 by “clicking” switch 34 on mouse 28. The selection of window 255through the use of buttons 280 to 283 permits the user to access shutoff alarm box 277 “through” window 260. Thus, the window 260 not havingbeen rendered “active” is transparent to the actions of the user,thereby permitting the user to operate on data disposed in an underlyingwindow such as, for example, accessing the shut off alarm box 277 in theexample of FIG. 10. It will be noted that although buttons 285 to 288and 280 to 283 have been shown to illustrate one method for designatinga window as active, a variety of other methods such as icons,highlighted title bars, and mechanisms may be used to accomplish similarresults.

In addition to the above described features of the present invention, itwill be appreciated that the present invention's use of α values allowswindows to be sorted such that the most transparent window is above lesstransparent windows. By sorting and subsequently displaying windowsbased on α values, the top window will always be the most transparent(See FIG. 10), with progressively less transparent windows displayedthereunder.

Accordingly, the present invention's use of transparency in a windowbased system increases the usable area of a display by permittingotherwise obscured window data to be visible to, and operated on, by theuser. By appropriately setting the α value, features such as scrollbars, window headers, boarders, icons and other general window data maybe rendered fully or partially transparent for the particularapplication. While the invention has been described with reference toFIGS. 1 through 10, it will be appreciated that the figures are forillustration only and do not limit the spirit and scope of theinvention.

We claim:
 1. A method for displaying elements on a display, comprising:determining a common area on the display shared between at least aportion of a first element and at least a portion of a second element;determining a first transparency value for the first element;determining at least a second transparency value for the second element;merging at least the portions of the first and second elements based onthe first and second transparency values; automatically sorting thefirst and second elements such that the most transparent element willappear in front of the least transparent element; and visibly displayingthe first and second elements based on the sorted merged portions of thefirst and second elements in the common area.
 2. An apparatus fordisplaying a plurality of objects on a display, comprising: means fordetermining a common area shared between at least a portion of a firstelement and at least a portion of a second element; means for mergingthe portions of the first and second elements in the common area; meansfor automatically sorting the first and second elements such that themost transparent element will appear in front of the least transparentelement; and means for visibly displaying the first and second elementsbased on the sorted merged portions of the first and second elements inthe common area.
 3. A method for displaying a plurality of objects,comprising: displaying a first element; determining an area of the firstelement common to at least a portion of a second element; adjusting atransparency of the first element in the area common to at least theportion of the second element; automatically sorting the first andsecond elements such that the most transparent element will appear infront of the least transparent element; and visibly displaying the leasttransparent element through the most transparent element based on theadjusted transparency of the first element.
 4. The method of claim 3,wherein adjusting a transparency of the first element in the area commonto at least the portion of the second element comprises: displaying athird element indicating a current transparency and a range oftransparency for the first element; and adjusting the currenttransparency for the first element based on input from a user.
 5. Themethod of claim 4, wherein the third element comprises a slider barelement.
 6. An apparatus for displaying a plurality of objects,comprising: means for displaying a first element; means for determiningan area of the first element common to at least a portion of a secondobject; means for adjusting a transparency of the first element in thearea common to at least the portion of the second object; means forautomatically sorting the first and second elements such that the mosttransparent element will appear in front of the least transparentelement; and means for visibly displaying the least transparent elementthrough the most transparent element based on the adjusted transparencyof the first element.
 7. A system for displaying a plurality of objects,comprising: a processor for determining an area of a first elementcommon to at least a portion of a second element, to adjust atransparency of the first element in the area common to at least theportion of the second elements, and automatically sort the first andsecond elements such that the most transparent element will appear infront of the least transparent element; and a display to visibly displaythe least transparent element through the most transparent element basedon the adjusted transparency of the first element.